The help output names the three documents an operator is owed - #173
Merged
iderex merged 1 commit intoAug 23, 2026
Merged
Conversation
An operator who runs the binary and never opens the repository had no route to the intended-use notice, the licence or the privacy document. The runner knew where all three were and said nothing about any of them, so for that reader the three files did not exist. The last paragraph of the usage text now names them. It names rather than restates, because a paraphrase printed by a binary somebody downloaded months ago is a copy of a document that has since moved on and the reader cannot tell which of the two they hold. The two limits this rests on are written at the declaration rather than only in the issue. A notice is not a control and printing it prevents nothing, so it should not be counted as a thing that stops misuse when somebody later asks what does. And a notice an operator has to run a verb to see is weaker than one sitting in the download beside the binary, which is why both routes are wanted rather than either alone. The guard is here because nothing else in the tree holds these strings. The paths leg of the invariants scan takes this repository's own documents as its subject, which is the files at the root and everything under docs/, and a path named inside the runner is outside that by the leg's own reckoning. The test asserts both halves of the walk an operator makes: that the text names the file, and that the file is in the tree to be found. Part of #36. It closes neither clause of that done-condition, which asks for the version output and the release archive as well, and both of those wait on something that does not exist yet. Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
iderex
deleted the
notice/the-help-output-names-the-documents-an-operator-is-owed
branch
August 23, 2026 02:30
This was referenced Aug 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #36.
An operator who runs the binary and never opens the repository had no route to
the intended-use notice, the licence or the privacy document. The runner knew
where all three were and said nothing about any of them, so for that reader the
three files did not exist.
The last paragraph of the usage text now names them. It names rather than
restates, because a paraphrase printed by a binary somebody downloaded months
ago is a copy of a document that has since moved on, and the reader has no way
to tell which of the two they are holding.
The two limits #36 asks for at the code are at the declaration rather than only
in the issue. A notice is not a control and printing it prevents nothing, so it
should not be counted as a thing that stops misuse when somebody later asks what
does. And a notice an operator has to run a verb to see is weaker than one
sitting in the download beside the binary, which is why both routes are wanted
rather than either alone.
What this does not close
Neither clause of the done-condition on #36.
The first asks that
lab --helpand the version output both name the threefiles. The runner takes verbs and no flags, so that spelling reaches the
unknown-verb branch and returns the code record
0011gives a brokeninvocation, and there is no version output of any kind:
The second asks that the release archive carry the three files next to the
binary, and there is nothing published for them to sit beside:
Whether the runner should grow a flag or the done-condition should name
lab helpis a question about the command interface, and this change does nottake it. The paragraph landing here is reached through the spelling that works
today, whichever way that goes.
The guard and the proof it bites
Nothing else in the tree holds these strings. The paths leg of the invariants
scan takes this repository's own documents as its subject, which is the files at
the root and everything under
docs/, andisOwnDocumentputs a path namedinside the runner outside that subject. A document deleted or moved under this
paragraph would therefore redden nothing, and the binary would go on telling
operators to read a file that is not there.
TestHelpNamesTheDocumentsAnOperatorIsOwedasserts both halves of the walk anoperator makes: that the text names the file, and that the file is in the tree
to be found. Each half was proved by breaking it and watching the suite go red,
then restored.
Deleting the paragraph from the usage text:
Moving one of the named documents out of the tree. The tail of that line is the
operating system's own message, quoted as it arrived:
Both restored, and the tree is green:
The means
Go, which is what the runner is written in and what decision record
0001fixes. The change is one paragraph of output text, one declaration and one test,
in packages that already exist. It adds no language, no runtime and no
dependency, and it is judged by the suite that is already here rather than
needing an apparatus of its own.
How this landing was rebuilt
An earlier landing of this change carried the same two files and no DCO
sign-off, and the sign-off gate refused it by name:
I did not rewrite that branch. The commit was rebuilt on a fresh branch with the
sign-off, and the two are proven to carry identical content rather than assumed
to:
The superseded pull request is closed with the reason in its body, and its
branch is left alone.
This body also replaces a first version of itself. The file it was composed into
was read back from a stale path that held unrelated text, and what that produced
was posted here for a few minutes before I read it back and replaced it. The
text above is the body this change was written with.
Reading
This change has had no second reader. The evidence above stands in place of one:
every command is quoted with the output it produced, both directions of the
guard were executed rather than argued, and what the change does not close is
written out here rather than left for a reader to derive from the diff.